package com.syg.generator.main;


public class CodeDelete {
    // private static String xmlPath;
    //
    // public CodeDelete() {
    // }
    //
    // public static void setXmlPath(String path) {
    //     xmlPath = path;
    // }
    //
    // public String validXmlBySchema(String xsdPath) {
    //     SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
    //     File schemaFile = new File(xsdPath);
    //     Schema schema = null;
    //
    //     try {
    //         schema = schemaFactory.newSchema(schemaFile);
    //     } catch (SAXException var9) {
    //         var9.printStackTrace();
    //     }
    //
    //     Validator validator = schema.newValidator();
    //     StreamSource source = new StreamSource(FileHelper.getInputStream(xmlPath));
    //
    //     try {
    //         validator.validate(source);
    //         return null;
    //     } catch (Exception var8) {
    //         return var8.getMessage();
    //     }
    // }
    //
    // public ConfigModel loadXml(String xmlPath) throws Exception {
    //     String xsdPath = (new File("")).getAbsolutePath() + "\\codegen.xsd";
    //     String result = this.validXmlBySchema(xsdPath);
    //     if (result != null) {
    //         throw new CodegenException("XML文件通过XSD文件校验失败:" + result);
    //     } else {
    //         ConfigModel cm = new ConfigModel();
    //         SAXReader saxReader = new SAXReader();
    //         Document document = null;
    //
    //         try {
    //             document = saxReader.read(new File(xmlPath));
    //         } catch (DocumentException var28) {
    //             throw new CodegenException("读XML出错!", var28);
    //         }
    //
    //         Element root = document.getRootElement();
    //         Properties prop = new Properties();
    //         String pathBase = (new File("")).getAbsolutePath();
    //         InputStream in = new BufferedInputStream(new FileInputStream(pathBase + "\\codegen.properties"));
    //         prop.load(in);
    //         String charset = prop.getProperty("charset");
    //         String system = prop.getProperty("system");
    //         cm.setCharset(charset);
    //         Iterator i = root.elementIterator("table");
    //
    //         String tableName;
    //         String filename;
    //         String dir;
    //         String name;
    //         String insertTag;
    //         while (i.hasNext()) {
    //             Element tableEl = (Element) i.next();
    //             tableName = tableEl.attributeValue("tableName");
    //             cm.getClass();
    //             Table table = new Table(cm, tableName);
    //             Iterator m = tableEl.elementIterator("variable");
    //
    //             Element subEl;
    //             while (m.hasNext()) {
    //                 subEl = (Element) m.next();
    //                 filename = subEl.attributeValue("name");
    //                 dir = subEl.attributeValue("value");
    //                 table.getVariable().put(filename, dir);
    //             }
    //
    //             table.getVariable().put("tabname", tableName);
    //             m = tableEl.elementIterator("subtable");
    //
    //             while (m.hasNext()) {
    //                 subEl = (Element) m.next();
    //                 filename = subEl.attributeValue("tablename");
    //                 dir = subEl.attributeValue("foreignKey");
    //                 Map<String, String> vars = new HashMap();
    //                 Iterator var = subEl.elementIterator("variable");
    //
    //                 while (var.hasNext()) {
    //                     Element varEl = (Element) var.next();
    //                     name = varEl.attributeValue("name");
    //                     insertTag = varEl.attributeValue("value");
    //                     vars.put(name, insertTag);
    //                 }
    //
    //                 vars.put("tabname", filename);
    //                 table.addSubTable(filename, dir, vars);
    //             }
    //
    //             cm.getTables().add(table);
    //         }
    //
    //         Element filesEl = root.element("files");
    //         cm.getClass();
    //         Files files = new Files(cm);
    //         cm.setFiles(files);
    //         tableName = filesEl.attributeValue("baseDir");
    //         files.setBaseDir(tableName);
    //         Iterator j = filesEl.elementIterator("file");
    //
    //         while (true) {
    //             while (true) {
    //                 while (j.hasNext()) {
    //                     Element fileEl = (Element) j.next();
    //                     String refTemplate = fileEl.attributeValue("refTemplate");
    //                     filename = fileEl.attributeValue("filename");
    //                     dir = StringUtil.replaceVariable(fileEl.attributeValue("dir"), system);
    //                     String sub = fileEl.attributeValue("sub");
    //                     String override = fileEl.attributeValue("override");
    //                     boolean isOverride = false;
    //                     if (StringUtil.isNotEmpty(override) && override.equals("true")) {
    //                         isOverride = true;
    //                     }
    //
    //                     name = fileEl.attributeValue("append");
    //                     if (name != null && name.toLowerCase().equals("true")) {
    //                         insertTag = fileEl.attributeValue("insertTag");
    //                         String startTag = fileEl.attributeValue("startTag");
    //                         String endTag = fileEl.attributeValue("endTag");
    //                         if (insertTag == null) {
    //                             insertTag = "<!--insertbefore-->";
    //                         }
    //
    //                         if (StringUtil.isEmpty(startTag)) {
    //                             startTag = "";
    //                         }
    //
    //                         if (StringUtil.isEmpty(endTag)) {
    //                             endTag = "";
    //                         }
    //
    //                         if (sub != null && sub.toLowerCase().equals("true")) {
    //                             files.addFile((String) null, filename, dir, true, isOverride, true, insertTag, startTag, endTag);
    //                         } else {
    //                             files.addFile((String) null, filename, dir, false, isOverride, true, insertTag, startTag, endTag);
    //                         }
    //                     } else if (sub != null && sub.toLowerCase().equals("true")) {
    //                         files.addFile((String) null, filename, dir, true, isOverride, false, "", "", "");
    //                     } else {
    //                         files.addFile((String) null, filename, dir, false, isOverride, false, "", "", "");
    //                     }
    //                 }
    //
    //                 return cm;
    //             }
    //         }
    //     }
    // }
    //
    // public void deleteFileByConfig(ConfigModel configModel) throws Exception {
    //     List<Table> tableList = configModel.getTables();
    //     Files files = configModel.getFiles();
    //     String baseDir = files.getBaseDir();
    //     String charset = configModel.getCharset();
    //     Iterator var6 = tableList.iterator();
    //
    //     while (true) {
    //         List list;
    //         String filename;
    //         List subtables;
    //         do {
    //             do {
    //                 if (!var6.hasNext()) {
    //                     return;
    //                 }
    //
    //                 Table table = (Table) var6.next();
    //                 Map<String, String> variables = table.getVariable();
    //                 list = files.getFiles();
    //                 Iterator var10 = list.iterator();
    //
    //                 while (var10.hasNext()) {
    //                     com.zycfc.zsf.boot.mybatis.generator.codegen.model.ConfigModel.Files.File file = (com.zycfc.zsf.boot.mybatis.generator.codegen.model.ConfigModel.Files.File) var10.next();
    //                     String filename = file.getFilename();
    //                     String dir = file.getDir();
    //                     filename = StringUtil.replaceVariable(filename, variables);
    //                     dir = StringUtil.replaceVariable(dir, variables);
    //                     String fileDir = baseDir + "\\" + dir;
    //                     String startTag = StringUtil.replaceVariable(file.getStartTag(), variables);
    //                     filename = StringUtil.replaceVariable(file.getEndTag(), variables);
    //                     boolean isAppend = file.getAppend();
    //                     if (isAppend) {
    //                         this.deleteAppendFile(fileDir, filename, charset, startTag, filename);
    //                     } else {
    //                         this.deleteFile(fileDir, filename);
    //                     }
    //                 }
    //
    //                 subtables = table.getSubtable();
    //             } while (subtables == null);
    //         } while (subtables.size() == 0);
    //
    //         Iterator var24 = subtables.iterator();
    //
    //         while (var24.hasNext()) {
    //             SubTable subtable = (SubTable) var24.next();
    //             Map<String, String> vars = subtable.getVars();
    //             Iterator var27 = list.iterator();
    //
    //             while (var27.hasNext()) {
    //                 com.zycfc.zsf.boot.mybatis.generator.codegen.model.ConfigModel.Files.File file = (com.zycfc.zsf.boot.mybatis.generator.codegen.model.ConfigModel.Files.File) var27.next();
    //                 filename = file.getFilename();
    //                 String dir = file.getDir();
    //                 String fileDir;
    //                 if (filename.indexOf("{") != -1) {
    //                     fileDir = filename.substring(filename.indexOf(123) + 1, filename.indexOf(125));
    //                     filename = (String) vars.get(fileDir) + filename.substring(filename.indexOf(125) + 1);
    //                 }
    //
    //                 if (dir.indexOf("{") != -1) {
    //                     fileDir = dir.substring(dir.indexOf(123) + 1, dir.indexOf(125));
    //                     dir = dir.substring(0, dir.indexOf(123)) + (String) vars.get(fileDir);
    //                 }
    //
    //                 fileDir = baseDir + "\\" + dir;
    //                 boolean isSub = file.isSub();
    //                 boolean isAppend = file.getAppend();
    //                 String startTag = StringUtil.replaceVariable(file.getStartTag(), vars);
    //                 String endTag = StringUtil.replaceVariable(file.getStartTag(), vars);
    //                 if (isSub) {
    //                     if (isAppend) {
    //                         this.deleteAppendFile(fileDir, filename, charset, file.getStartTag(), file.getEndTag());
    //                     } else {
    //                         this.deleteFile(fileDir, filename);
    //                     }
    //                 }
    //             }
    //         }
    //     }
    // }
    //
    // private void deleteFile(String fileDir, String filename) {
    //     String filepath = StringUtil.combilePath(fileDir, filename);
    //     File file = new File(filepath);
    //     if (file.exists()) {
    //         file.delete();
    //         System.out.println("删除了文件" + filename);
    //     } else {
    //         System.out.println(filename + "该文件不存在");
    //     }
    //
    //     if (!FileHelper.isExistFile(fileDir)) {
    //         file = new File(fileDir);
    //         file.delete();
    //     }
    //
    // }
    //
    // private void deleteAppendFile(String fileDir, String filename, String charset, String startTag, String endTag) throws Exception {
    //     String filepath = StringUtil.combilePath(fileDir, filename);
    //     File file = new File(filepath);
    //     if (file.exists()) {
    //         boolean exists = false;
    //         String content = FileHelper.readFile(filepath, charset);
    //         if (content.indexOf(startTag) != -1) {
    //             content = content.substring(0, content.indexOf(startTag)).trim() + "\r\n" + content.substring(content.indexOf(endTag) + endTag.length()).trim();
    //             file.delete();
    //             file = new File(filepath);
    //             FileHelper.writeFile(file, charset, content.trim());
    //             System.out.println("删除了内容" + startTag + "-----" + endTag);
    //         }
    //     }
    //
    // }
    //
    // public void execute() throws Exception {
    //     String dir = (new File("")).getAbsolutePath();
    //     if (xmlPath == null || xmlPath == "") {
    //         setXmlPath(dir + "\\codegenconfig.xml");
    //     }
    //
    //     System.out.println("execute:" + xmlPath);
    //     if (xmlPath == null) {
    //         throw new CodegenException("未指定XML路径!");
    //     } else {
    //         ConfigModel cm = this.loadXml(xmlPath);
    //         this.deleteFileByConfig(cm);
    //     }
    // }
}
